function [x, d] = enhanced(u, x0, N)
% 计算增强映射及其导数
%
%   [x, d] = enhanced(u, x0, N)
%   输入参数：
%       u   - 控制参数 (标量)
%       x0  - 初始值
%       N   - 迭代次数
%
%   映射定义： f(x) = u * sin(x) * (1 - sin(x))
%   导数定义： f'(x) = u * cos(x) * (1 - 2 sin(x))
%
%   输出参数：
%       x   - 1 x N 的行向量，存放每一步迭代后的状态值
%       d   - 1 x N 的行向量，存放对应点的导数值
%
%   说明：
%   - x(1) 存放初始值 x0
%   - d(1) 存放在初始值处的导数 f'(x0)
%   - x(k+1) = f(x(k))
%   - d(k+1) = f'( x(k+1) )
%

    % 分配空间
    x = zeros(1, N);
    d = zeros(1, N);

    % 定义迭代映射和导数
    f  = @(xx) u .* sin(xx) .* (1 - sin(xx));
    fp = @(xx) u .* cos(xx) .* (1 - 2.*sin(xx));

    % 初始化
    x(1) = x0;
    d(1) = fp(x0);  % 初始点 x0 处的导数

    % 迭代计算
    for k = 1 : (N-1)
        x(k+1) = f(x(k));        % x(k+1)
        d(k+1) = fp(x(k+1));     % 对应 x(k+1) 处的导数
    end
end
